# -*- coding:utf-8 -*-
#! python3

from facecat import *

#更新悬浮状态
#views:视图集合
def updateView(views):
	updateViewDefault(views)

#绘制视图
#view:视图
#paint:绘图对象
#clipRect:区域
def onPaint(view, paint, clipRect):
	onPaintDefault(view, paint, clipRect)

#绘制视图边线
#view:视图
#paint:绘图对象
#clipRect:区域
def onPaintBorder(view, paint, clipRect):
	onPaintBorderDefault(view, paint, clipRect)

#视图的鼠标移动方法
#view 视图
#mp 坐标
#buttons 按钮 0未按下 1左键 2右键
#clicks 点击次数
#delta 滚轮值
def onMouseMove(view, mp, buttons, clicks, delta):
	onMouseMoveDefault(view, mp, buttons, clicks, delta)
		
#视图的鼠标按下方法
#view 视图
#mp 坐标
#buttons 按钮 0未按下 1左键 2右键
#clicks 点击次数
#delta 滚轮值
def onMouseDown(view, mp, buttons, clicks, delta):
	onMouseDownDefault(view, mp, buttons, clicks, delta)

#视图的鼠标抬起方法
#view 视图
#mp 坐标
#buttons 按钮 0未按下 1左键 2右键
#clicks 点击次数
#delta 滚轮值
def onMouseUp(view, mp, buttons, clicks, delta):
	onMouseUpDefault(view, mp, buttons, clicks, delta)

#视图的鼠标点击方法
#view 视图
#firstTouch:是否第一次触摸 
#firstPoint:第一次触摸的坐标 
#secondTouch:是否第二次触摸 
#secondPoint:第二次触摸的坐标
#clicks 点击次数
def onClick(view, firstTouch, firstPoint, secondTouch, secondPoint, clicks):
	onClickDefault(view, firstTouch, firstPoint, secondTouch, secondPoint, clicks)

#视图的鼠标滚动方法
#view 视图
#mp 坐标
#buttons 按钮 0未按下 1左键 2右键
#clicks 点击次数
#delta 滚轮值
def onMouseWheel(view, mp, buttons, clicks, delta):
	onMouseWheelDefault(view, mp, buttons, clicks, delta)

appPaint = FCPaint() #创建绘图对象
appPaint.defaultUIStyle = "dark"
#注册事件
appPaint.onPaint = onPaint 
appPaint.onPaintBorder = onPaintBorder
appPaint.onMouseDown = onMouseDown 
appPaint.onMouseMove = onMouseMove 
appPaint.onMouseUp = onMouseUp
appPaint.onMouseWheel = onMouseWheel
appPaint.onClick = onClick
appPaint.onUpdateView = updateView

#消息循环
def WndProc(hwnd,msg,wParam,lParam):
	return WndProcDefault(appPaint,hwnd,msg,wParam,lParam)

#创建窗体
createMainWindow(appPaint, "facecat-py", WndProc)

#创建多页夹
tabView = FCTabView()
#添加到框架
addView(tabView, appPaint)
#根据主题设置配色
if tabView.paint.defaultUIStyle == "dark":
	tabView.backColor = "rgb(0,0,0)"
	tabView.borderColor = "rgb(100,100,100)"
	tabView.textColor = "rgb(255,255,255)"
elif tabView.paint.defaultUIStyle == "light":
	tabView.backColor = "rgb(255,255,255)"
	tabView.borderColor = "rgb(150,150,150)"
	tabView.textColor = "rgb(0,0,0)"
#填充布局
tabView.dock = "fill"
tabView.borderColor =  "none"
tabView.underLineColor = "rgb(255,215,0)"
#设置布局方式
tabView.layout = "bottom"

#添加多页夹
for i in range(0,4):
	#创建页夹
	tabPage = FCTabPage()
	tabPage.paint = appPaint
	if i == 0:
		tabPage.visible = True
	else:
		tabPage.visible = False
	tabPage.borderColor = "none"
	tabPage.parent = tabView
	#创建页夹对应的按钮
	tabButton = FCView()
	tabButton.paint = appPaint;
	tabButton.viewType = "tabbutton"
	#设置文字
	tabButton.text = "第" + str(i + 1) + "页"
	#设置大小
	tabButton.size = FCSize(100, 20)
	#设置不同的颜色
	tabButton.textColor = "rgb(0,0,0)"
	if i == 0:
		tabPage.backColor = "rgb(255,0,0)"
	elif i == 1:
		tabPage.backColor = "rgb(0,255,0)"
	elif i == 2:
		tabPage.backColor = "rgb(0,0,255)"
	elif i == 3:
		tabPage.backColor = "rgb(255,0,255)"
	#添加页夹和按钮到多页夹视图中
	addTabPage(tabView, tabPage, tabButton)
	#根据主题配色
	if tabView.paint.defaultUIStyle == "dark":
		tabButton.backColor = "rgb(0,0,0)"
		tabButton.borderColor = "rgb(100,100,100)"
		tabButton.textColor = "rgb(255,255,255)"
	elif tabView.paint.defaultUIStyle == "light":
		tabButton.backColor = "rgb(255,255,255)"
		tabButton.borderColor = "rgb(150,150,150)"
		tabButton.textColor = "rgb(0,0,0)"

#更新多页加布局
updateTabLayout(tabView)
#获取窗体大小
rect = win32gui.GetClientRect(appPaint.hWnd)
#更新布局
appPaint.size = FCSize(rect[2] - rect[0], rect[3] - rect[1])
updateView(appPaint.views)
showWindow(appPaint)